The I.sup.2 C bus is a 2-wire bidirectional serial bus for communication between bus devices in a data processing system. Bus devices may include microprocessors, microcontrollers, memory devices, peripheral devices, data converters, and application-oriented circuits. Two wires of the I.sup.2 C bus constitute a serial data line (SDA) for communicating data between bus devices and a serial clock line (SCL) carrying clock signals that control bus access and data transfer.
Each device is recognized by a unique address and can operate as either a receiver-only device or a transmitter with the capability to both receive and send information. Transmitters and/or receivers can operate in either master or slave mode, depending on whether the chip has to initiate a data transfer or is only addressed.
There are two limitations to devices that use I.sup.2 C buses. First, once the bus devices have been interconnected with the I.sup.2 C bus, this configuration is not expandable by the addition of new devices to the circuit, without having to reprogram any one or more of the devices that operate as a controlling device. For example, once the I.sup.2 C bus circuitry has been connected, a microcontroller coupled to the bus and controlling will be programmed with the addresses of each of the existing devices. But, when a device is added at a later time, the microcontroller will not recognize this new device, since it will not know the new device's address. The crude solution to this problem is to also replace the microcontroller with a newly programmed microcontroller having knowledge of the new bus device.
The second limitation is related to the first, in that once the devices have been interconnected by the I.sup.2 C bus, the set of operations, or commands, possible between the devices over the I.sup.2 C bus is also set and cannot be expanded without also replacing the microcontroller.
Therefore, there is a need in the art to be able to add new devices and/or to add new functionality to an existing I.sup.2 C bus arrangement without also having to replace the microcontroller.